package com.innovaswc.scrum.persistencia;

import java.io.Serializable;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Set;


/**
 * The persistent class for the proyecto database table.
 * 
 */
@Entity
@Table(name="proyecto")
public class Proyecto implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private String codigo;

	private Timestamp fechareg;

    @Temporal( TemporalType.DATE)
	@Column(name="fin_planeado")
	private Date finPlaneado;

    @Temporal( TemporalType.DATE)
	@Column(name="fin_real")
	private Date finReal;

    @Temporal( TemporalType.DATE)
	@Column(name="inicio_planeado")
	private Date inicioPlaneado;

    @Temporal( TemporalType.DATE)
	@Column(name="inicio_real")
	private Date inicioReal;

	private String nombre;

	//bi-directional many-to-one association to Etapa
	@OneToMany(mappedBy="proyecto")
	private Set<Etapa> etapas;

	//bi-directional many-to-one association to ReleaseProducto
    @ManyToOne
	@JoinColumns({
		@JoinColumn(name="producto_release_producto", referencedColumnName="codigo_producto"),
		@JoinColumn(name="producto_release_tag", referencedColumnName="tag")
		})
	private ReleaseProducto releaseProducto;

	//bi-directional many-to-one association to Tarea
	@OneToMany(mappedBy="proyecto")
	private Set<Tarea> tareas;

    public Proyecto() {
    }

	public String getCodigo() {
		return this.codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public Timestamp getFechareg() {
		return this.fechareg;
	}

	public void setFechareg(Timestamp fechareg) {
		this.fechareg = fechareg;
	}

	public Date getFinPlaneado() {
		return this.finPlaneado;
	}

	public void setFinPlaneado(Date finPlaneado) {
		this.finPlaneado = finPlaneado;
	}

	public Date getFinReal() {
		return this.finReal;
	}

	public void setFinReal(Date finReal) {
		this.finReal = finReal;
	}

	public Date getInicioPlaneado() {
		return this.inicioPlaneado;
	}

	public void setInicioPlaneado(Date inicioPlaneado) {
		this.inicioPlaneado = inicioPlaneado;
	}

	public Date getInicioReal() {
		return this.inicioReal;
	}

	public void setInicioReal(Date inicioReal) {
		this.inicioReal = inicioReal;
	}

	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public Set<Etapa> getEtapas() {
		return this.etapas;
	}

	public void setEtapas(Set<Etapa> etapas) {
		this.etapas = etapas;
	}
	
	public ReleaseProducto getReleaseProducto() {
		return this.releaseProducto;
	}

	public void setReleaseProducto(ReleaseProducto releaseProducto) {
		this.releaseProducto = releaseProducto;
	}
	
	public Set<Tarea> getTareas() {
		return this.tareas;
	}

	public void setTareas(Set<Tarea> tareas) {
		this.tareas = tareas;
	}
	
}